#pragma once

#ifndef STUDENT_H
#define STUDENT_H

#include <iostream>
#include <string>
#include <vector>

using namespace std;

#include "Course.h"
#include "Score.h"

class Student {
    friend ostream &operator<<(ostream &, const Student &);
    friend istream &operator>>(istream &, Student &);

public:
    Student();
    Student(const string &, const string &);
    void           setStudentId(const string &);
    void           setStudentName(const string &);
    void           setScores(const vector<Score>);
    string         getStudentId() const;
    string         getStudentName() const;
    void           addCourse(Course course);
    void           addScore(Score score);
    vector<Score>  getScores() const;
    vector<Course> getCourses() const;

private:
    string         studentid;
    string         studentname;
    vector<Course> courses;
    vector<Score>  scores;
};

#endif // !STUDENT_H
